package com.amar.test.testmiodb;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;


public class ListaElementi {  // i metadati della tabella, accessibili ovunque
	public static final String LISTA_ELEMENTI_TABLE = "lista_elementi";
	public static final String ID                   = "_id";
	public static final String LISTA_ID             = "lista_id";
	public static final String LISTA_ELEMENTI_DESC  = "desc";
	public static final String LISTA_ELEMENTI_STATO = "stato";
	private static      String TAG                  = "LISTA_ELEMENTI";
	public  static      String LISTA_ELEMENTI_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "  
															+ ListaElementi.LISTA_ELEMENTI_TABLE + " (" 
															+ ListaElementi.ID + " integer primary key autoincrement, "
															+ ListaElementi.LISTA_ID + " integer REFERENCES " + Lista.LISTA_TABLE + " ON DELETE CASCADE, "
															+ ListaElementi.LISTA_ELEMENTI_DESC + " text not null, "
															+ ListaElementi.LISTA_ELEMENTI_STATO + " integer not null default 0);"
															;

	/**
     * metodo insert tabella ListaElementi
     * @param long listaId
     * @param String descLista
     * @param int statoLista
     * @return long _id
     * @exception SQLiteException
     */
	public static long insertListaElementi(SQLiteDatabase myDb,long listaId, String descLista,int statoLista){
		try {
			 ContentValues cv=new ContentValues();
			 cv.put(ListaElementi.LISTA_ID, listaId);
			 cv.put(ListaElementi.LISTA_ELEMENTI_DESC, descLista);
			 return myDb.insertOrThrow(ListaElementi.LISTA_ELEMENTI_TABLE
					                  , null
					                  , cv
					                   );	                   
		    } catch (SQLiteException ex) {
		    	Log.d(TAG, "Errore inserimento ListaElementi :" + String.valueOf(ex.getMessage()));
	            return 0;
	        } 
	}
	
	/**
     * metodo update tabella ListaElementi
     * @param long listaId
     * @param String descLista
     * @param int statoLista
     * @return numero di righe aggiornate
     * @exception SQLiteException
     */
	public static int updateListaElementi(SQLiteDatabase myDb,long listaId, String descLista,int statoLista){
		try {
			 ContentValues cv=new ContentValues();
			 cv.put(ListaElementi.LISTA_ELEMENTI_DESC, descLista);
			 cv.put(ListaElementi.LISTA_ELEMENTI_STATO, statoLista); 
		     return myDb.update(ListaElementi.LISTA_ELEMENTI_TABLE
				    	       , cv
				    	       , ListaElementi.LISTA_ID + "=" + listaId
				    	       , null
		                       );
		   } catch (SQLiteException ex) {
			   Log.d(TAG, "Errore aggiornamento ListaElementi :" + String.valueOf(ex.getMessage()));
	           return 0;
	        }
	}
	
	public static Cursor fetchListaElementi(SQLiteDatabase myDb,long listaId){ 
		return myDb.query(ListaElementi.LISTA_ELEMENTI_TABLE          //tabella
				         , null                                       //colonna
				         , ListaElementi.LISTA_ID + "="  + listaId    //where condition                       
				         , null                                       //arguments
				         , null                                       //group by
				         , null                                       //having
				         , null                                       //order by
				         );		
	}
}